【事例レポート】事例から学ぶGPU活用術。インフラ効率化と安定化に向けた実践的アプローチ #GoogleCloudNext
概要
バルス株式会社の事例を中心に、GPUインフラの効率化と安定化についての事例セッションです。
スポットインスタンスのコスト削減メリットを活かしつつ、作業中断の課題を解決する方法なども語っていただけました。
また、Google CloudのCompute Engine(GCE)やWorkflowsを駆使した実践的なアプローチは、多くの企業にとって参考になるかと思います。
※ 本ブログでは、登壇者や関係会社の個別紹介は控えさせていただきます。また、会社名およびサービス名の敬称は省略いたします。
課題
バルス株式会社では、自社の生成AIツールの課題解決のために(以下4つ)、株式会社grasysに協力を依頼しました。
-
ストレージの実装の課題
- ユーザーが別々のストレージを利用していたため、煩雑さやコストの増加があった(転送コスト、ローカルストレージの利用)
-
処理能力速度の問題
- メインメモリが不足する状態であった
-
Spot VMの中断
- 生成処理のやり直しなどの問題があった(止まる問題)
-
非エンジニアでも管理できるフローの構築
- エラーが起きた時に非エンジニアでも確認/対応できるようにしたかった
また、既存のGoogle Cloud環境自体はコスト効率なども考慮された無駄を省いた環境の構築ができていたと話しておりました。
その中で、「既存の処理を自動化して効率化するアプローチ」が必要と判断されたそうです。
実際のアプローチ
先程も書いた通り、問題への解決のアプローチとしては既存の処理を効率化(自動化)をすることでした。
主要なコンポーネントにはCloud Workflows、Cloud Storage、Compute Engineを利用し、処理の中断をさせない環境の構築を目指し、自動化の採用で非エンジニアでも対応できるシステムを目指しました。
次からは、株式会社grasysが提案した構成について簡単に解説します。
構成①
このアーキテクチャは、以下のコンポーネントで構成されています:
- Cloud Load Balancing
- 複数のCompute Engineインスタンスに適切に振り分けることで、システムの負荷分散を実現しました。
- Compute Engine
- 実際の処理を行うサーバーですが、画像を見ると複数のインスタンスを設定することで、負荷分散と災害時の冗長性を確保しています。
- Cloud Storage
- データの保存場所として利用しますが、今回Cloud Storage FUSEを採用してインスタンスから大容量データへのシームレスなアクセスが可能となります。
- Cloud Workflows
- 全体のプロセスを制御し、各コンポーネント間の連携やタスクの実行順序を管理します。
ただし、この構成では、インスタンスの立ち上がりが遅い(5分〜10分)という問題があり、構成②についても検討したようです。
また、大変面白かったのが、構成図がわかりにくい人のために、漫画形式でストーリーを作成して説明もしてくれました。
今回の構成①のアーキテクチャ図の流れについて、漫画での説明です。
構成②
構成①の課題を解決させるために考案されたアーキテクチャ構成です。
構成②では、あらかじめベースのVMイメージを作成することで時短を実現し、さらに元のVMとディレクトリを同期することにより、モデル参照速度をUPしました。
ただし、ディスクの共有方法という問題は引き続きありました。
今回の構成②のアーキテクチャ図の流れについて、漫画での説明です。
今後の目指す構成
使用するサービス自体は構成①が基盤にあるので、各コンポーネントの説明は割愛します。(かなり画像が荒くてすみません)
ただ、特にスプレッドシートの更新などがトリガーとなり、処理が開始されることで構成②についての課題へアプローチできるのだとか。
そして、生成の状態を複数のインスタンス間で共有できることで、熟練度の異なるレベルのエンジニアでもそれぞれ対応が可能と強調しておりました。
目指す構成についても、漫画形式でまとめていただけました。
全てのVMにマネージャーとしての役割であるマ・ウントさん(NFSマウント)を行うことで、課題解決へのアプローチとなるようです。
提案した構成で得られたメリットについては、ストレージの共通化、Spot VMの中断問題の解決、処理能力・速度の向上、そして非エンジニアでも管理できるフローの構築です。
これらの改善により、コスト効率と運用効率の両立を実現し、様々な技術レベルのユーザーに対応できるシステムが構築されました。
まとめ
Google Cloudのサービスを効果的に組み合わせることで、既存の処理を自動化し、スポットインスタンスのコスト削減メリットを活かしつつ、処理の中断問題の解決を中心に事例が語られました。
さらに、非エンジニアでも操作可能なシステム構築や、異なる熟練度のエンジニアが対応できる環境の実現など、さまざまな技術レベルの人へのアプローチを可能にしました。
このような段階的な改善と、スプレッドシート更新をトリガーとした処理開始などの自動化により、効率的で安定したシステムへと進化をしたことで、システム自体のアップデートに繋がったように思います。